package com.tuniu.agents.common.service.itinerary;

import com.tuniu.agents.common.entity.itinerary.BaseItinerary;
import com.tuniu.agents.common.entity.itinerary.Resource;

public interface ItineraryService {

    /**
     * build itinerary
     */
    BaseItinerary buildItinerary(String conversationId, String commandId);

    /**
     * build ItineraryInformation
     */
    BaseItinerary buildItineraryInformation(String conversationId, String commandId, String destination, String departureDate, String returnDate);

    /**
     * save resource
     */
    BaseItinerary saveResource(String conversationId, String commandId, Resource resource);

    /**
     * remove resource
     */
    Resource removeResource(String conversationId, String commandId, Resource resource);

    /**
     * find resource from Itinerary
     */
    Resource getResource(String conversationId, String commandId, Resource resource);

    /**
     * get itinerary
     */
    BaseItinerary getItinerary(String conversationId, String commandId);

    /**
     * get itinerary resource id
     */
    String getItineraryId(String conversationId);

    /**
     * build markdown
     */
    String buildMarkdown(String conversationId, String commandId);

    /**
     * build resource markdown
     */
    String buildResourceMarkdown(String conversationId, String commandId);

    /**
     * build itinerary and resource markdown
     */
    String buildItineraryMarkdown(String conversationId, String commandId);
}
